﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QuanLyBanHang.QuerySQL;

namespace QuanLyBanHang
{
    public partial class frHoadonnhap : Office2007Form
    {
        ClassPhieunhap pn = new ClassPhieunhap();
        public string nhanvien;
        public string quyen;
        private bool ktra,ktra1;
        private Double slg,gia,thanhtien;
        private Double tongtien;
        private int dong;
        public frHoadonnhap()
        {
            InitializeComponent();
        }

        private void frHoadonnhap_Load(object sender, EventArgs e)
        {
            this.AcceptButton = btnthemHD;
            dtgv_PN.DataSource = pn.ShowPN(0);
            btnLHD.Checked = true;
            btn_CTHD.Enabled = false;
        }

        private void dtgv_PN_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            try
            {
                for (int i = 0; i < dtgv_PN.RowCount; i++)
                {
                    dtgv_PN.Rows[i].Cells["cl_stt"].Value = i + 1;
                }
            }
            catch { }
        }

        private void cboncc_Click(object sender, EventArgs e)
        {
            cboncc.DataSource = pn.ShowMANCC();
            cboncc.ValueMember = "MANCC";
            cboncc.DisplayMember = "MANCC";
        }

        private void btnthemHD_Click(object sender, EventArgs e)
        {
            if (txtmapn.TextLength==0)
            {
                lbthongbao.Text = "Hãy nhập vào mã phiếu nhập ...";
                txtmapn.Focus();
            }
            else if (txtmapn.TextLength>20)
            {
                 lbthongbao.Text = "Khồng quá 20 ký tự...";
                 txtmapn.Focus();
            }
            else if (cboncc.Text.Equals(""))
            {
                lbthongbao.Text = "Chọn nhà cung cấp...";
                cboncc.Focus();
            }
            else {
                if (ktra)
                {
                    MessageBox.Show("Mã hóa đơn đã tồn tại !!!");
                }
                else
                {
                    lbthongbao.Text = "";
                    pn.ThemPN(txtmapn.Text, cboncc.Text, nhanvien);
                    dtgv_PN.DataSource = pn.ShowPN(1, txtmapn.Text, cboncc.Text);
                    btn_CTHD.Enabled = true;
                    btn_CTHD.Checked = true;
                    btnLHD.Enabled = false;
                    btnItemTK.Enabled = false;  
                    cbomasp.Focus();
                    cbomasp.Text = "";
                    this.AcceptButton = btnluu;
                }
            }
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            txtmapn.Clear();
            cboncc.Text = "";
            lbthongbao.Text = "";
            frHoadonnhap_Load(sender, e);
        }

        private void txtmapn_TextChanged(object sender, EventArgs e)
        {
            ktra = false;
            foreach (DataRow row in pn.ShowPN(2).Rows)
            {
                if (row["MAPN"].ToString().Equals(txtmapn.Text))
                {
                    ktra = true;
                }
            }
        }

        private void cbomasp_Click(object sender, EventArgs e)
        {
            cbomasp.DataSource = pn.Show_CTSP(1);
            cbomasp.ValueMember = "MASP";
            cbomasp.DisplayMember = "MASP";
        }

        private void btnluu_Click(object sender, EventArgs e)
        {
            if (cbomasp.Text.Length == 0)
            {
                lbthongbao1.Text = "Không được để trống...";
                cbomasp.Focus();
            }
            else if (cbomasp.Text.Length > 20)
            {
                lbthongbao1.Text = "Không quá 20 ký tự...";
                cbomasp.Focus();
            }
            else if (txtgia.TextLength==0)
            {
                lbthongbao1.Text = "Không được để trống...";
                txtgia.Focus();
            }
            else if (txtslg.TextLength==0)
            {
                lbthongbao1.Text = "Không được để trống...";
                txtslg.Focus();
            }
            else if (txtthanhtien.TextLength == 0)
            {
                lbthongbao1.Text = "Không được để trống...";
                txtthanhtien.Focus();
            }
            else {
                if (ktra1)
                {
                    MessageBox.Show("Sản phẩm đã tồn tại !!!");
                }
                else
                {
                    lbthongbao1.Text = "";
                    pn.Them_CTPN(txtmapn.Text,cbomasp.Text,gia,slg,thanhtien);
                    pn.SuaPN(txtmapn.Text,(tongtien + thanhtien));
                    dtgv_PN.DataSource = pn.ShowPN(1, txtmapn.Text, cboncc.Text);
                    cbomasp.Text = "";
                    txtgia.Clear();
                    txtslg.Clear();
                
                }
            }
        }

        private void txtgia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void cbomasp_TextChanged(object sender, EventArgs e)
        {            
            ktra1 = false;
            foreach (DataRow row in pn.ShowCTPN().Rows)
            {
                if (row["MAPN"].ToString().Equals(txtmapn.Text) && row["MASP"].ToString().Equals(cbomasp.Text))
                {
                    ktra1 = true;
                }
            }
        }

        private void txtslg_TextChanged(object sender, EventArgs e)
        {
            if (txtgia.TextLength == 0 || txtslg.TextLength == 0)
            {
                txtthanhtien.Clear();
            }
            else { 
                slg = Convert.ToDouble(txtslg.Text);
                gia = Convert.ToDouble(txtgia.Text);
                thanhtien = slg*gia;
                txtthanhtien.Text = thanhtien.ToString();            
            }
        }

        private void txtgia_TextChanged(object sender, EventArgs e)
        {
            if (txtgia.TextLength == 0 || txtslg.TextLength == 0)
            {
                txtthanhtien.Clear();
            }
            else
            {
                slg = Convert.ToDouble(txtslg.Text);
                gia = Convert.ToDouble(txtgia.Text);
                thanhtien = slg * gia;
                txtthanhtien.Text = thanhtien.ToString();
            }
        }

        private void dtgv_PN_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            dong = e.RowIndex;
            if (dtgv_PN.Rows[dong].Cells["cl_tien"].Value.ToString().Equals(""))
            {
                tongtien = 0;
            }
            else
            {
                tongtien = Convert.ToDouble(dtgv_PN.Rows[dong].Cells["cl_tien"].Value.ToString());
            }
        }

        private void btnhuy_Click(object sender, EventArgs e)
        {
            frHoadonnhap_Load(sender, e);
            btnLHD.Enabled = true;
            btnLHD.Checked = true;
            btnItemTK.Enabled = true;
            btn_CTHD.Enabled = false;
            txtmapn.Clear();
            cboncc.Text = "";
            this.AcceptButton = btnthemHD;
            if (!dtgv_PN.Rows[dong].Cells["cl_tien"].Value.ToString().Equals(""))
            {
                MessageBox.Show("Cập nhật sản phẩm");
                frSanpham frm = new frSanpham();
                frm.ShowDialog();
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (dtgv_PN.Rows[dong].Cells["cl_tien"].Value.ToString().Equals(""))
            {
                DialogResult kq = MessageBox.Show("Bạn có chắc muốn xóa Hóa đơn " + dtgv_PN.Rows[dong].Cells["cl_mapn"].Value.ToString() + "  ? ", "Thông báo", MessageBoxButtons.YesNo);
                if (kq == DialogResult.Yes)
                {
                    pn.XoaPN(dtgv_PN.Rows[dong].Cells["cl_mapn"].Value.ToString());
                    dtgv_PN.DataSource = pn.ShowPN(0);
                }
            }
            else if (quyen == "quantri" || quyen == "quanly")
            {
                DialogResult kq = MessageBox.Show("Bạn có chắc muốn xóa Hóa đơn " + dtgv_PN.Rows[1].Cells["cl_mapn"].Value.ToString() + "  ? ", "Thông báo", MessageBoxButtons.YesNo);
                if (kq == DialogResult.Yes)
                {
                    pn.XoaPN(dtgv_PN.Rows[dong].Cells["cl_mapn"].Value.ToString());
                    dtgv_PN.DataSource = pn.ShowPN(0);
                }
            }
            else
            {
                MessageBox.Show("Không được phép xóa !!!");
            }
        }

        private void btnhuy2_Click(object sender, EventArgs e)
        {
            txttkmapn.Clear();
            txttkncc.Clear();           
        }

        private void txttkmapn_TextChanged(object sender, EventArgs e)
        {
            dtgv_PN.DataSource = pn.TKPN(0,txttkmapn.Text);
        }

        private void txttkncc_TextChanged(object sender, EventArgs e)
        {
            dtgv_PN.DataSource = pn.TKPN(1, null,txttkncc.Text);
        }
    }
}
